POV-Ray : Newsgroups : povray.general : How do I create terrain without heightfields? : Re: How do I create terrain without heightfields? Server Time
10 Aug 2024 05:18:53 EDT (-0400)
  Re: How do I create terrain without heightfields?  
From: Chris Huff
Date: 6 Mar 2000 11:07:49
Message: <chrishuff_99-6CC216.11093006032000@news.povray.org>
In article <38c38e9c@news.povray.org>, "Lars Luthman" <no### [at] spamse> 
wrote:

> Is there a tutorial somewhere on how to create realistic looking 
> mountains in POV without using image files as heightfields (for 
> example using the isosurfaces in MegaPOV)? Or could someone reply to 
> this message and explain the basics?

Well, you can use a height field without an image, using a pattern 
instead. To do that you use the "pattern" keyword. Here is the syntax 
and a sample copied from the MegaPOV documentation:

pattern Width, Height { [ hf_gray_16] PIGMENT }

#declare QuickLandscape =
height_field {
    pattern 200, 200 {hf_gray_16 bozo
        color_map { [0 rgb 0] [1 rgb 1] }
    }
}


There are many ways to do it with an isosurface, it depends on what kind 
of terrain you are looking for. You could use the ridged multifractal 
functions(which I have never used and don't know anything about), a 
plane displaced with one or several noise3d() functions, or a plane 
displaced with one or several pigments. Of the last two, mixing pigments 
is more flexible but possibly slower.
An example:

#declare WrinklesFunc =
function {
    pigment {wrinkles
        color_map {[0 color Black][1 color White]}
    }
}

isosurface {
    function {y - // the xy plane...
        WrinklesFunc(x, 0, z)*5 -
        WrinklesFunc(x*3, 0, z*3)*2
        // notice the y value is set to 0
        // If y is used in this part, overhangs
        // are possible.
    }
    threshold 0
}

-- 
Chris Huff
e-mail: chr### [at] yahoocom
Web page: http://chrishuff.dhs.org/


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.